1. Field of the Present Invention
The present invention generally relates to field of network computing and more particularly to improving the performance and flexibility of network stations by incorporating improvements into the boot sequence code.
2. History of Related Art
Data processing networks typically include a variety of data processing devices. Among these, user stations or network stations provide economical devices with which multiple users can access applications from a network server. Typically, the network station does not have a permanent mass storage device such as a hard disk suitable for permanently storing operating system and application programs. Instead, the network station operates by retrieving operating system and application code from one or more network servers. The centralization of application and operating system software on servers simplifies the task of controlling the software that is available to end users of the network. In addition, the overall cost of the network is reduced by reducing the number of hard disk devices that the network includes. Despite these advantages, the lack of local permanent mass storage means that user stations must typically perform a relatively extensive and time consuming boot sequence following a reset or power on to establish a network connection with a server and retrieve the necessary code from the server. It would therefore be desirable to implement improvements to the network station boot code to reduce the boot time. It would be further desirable if the implemented solution gave the user greater control over the boot process without significantly increasing the cost of the network station.
The problems identified above are in large part addressed by a data processing system and a method in which the user station boot process is made more efficient by storing information about successful boots that may be used in subsequent boot sequences and by enabling the user to specify parameters that may be supplied as default values if a dynamic boot protocol fails to supply a particular parameter. In one embodiment, the invention is suitable for use with a user station that includes more than one network adapter card. In this embodiment, the boot code sequence may include trying to boot using each of the network adapters. If one adapter is connected to a network and enables the user station to reach a boot server, the adapter information is recorded in a non-volatile storage device (NVRAM) of the user station. During subsequent boot sequences, the boot code will retrieve the recorded adapter information before attempting to boot and will use the adapter indicated by the recorded information to boot the user station. In another embodiment, the boot code may cycle through a predetermined sequence of path/filenames and communication protocols searching for a path/protocol combination that produces a successful boot sequence. When the user station boots successfully, the boot code records the successful path/protocol information in the user station NVRAM. During a subsequent boot, the boot code retrieves the path/protocol information from the NVRAM and uses it to boot thereby eliminating the potentially time consuming process of attempting to boot from one or more path/protocol combinations that were tried previously (and unsuccessfully).
The invention still further contemplates boot code and a boot process in which the boot code initially attempts to boot the user station using a dynamic protocol such as DHCP. If one or more boot parameters are not successfully supplied by the DHCP server, the boot code will check information stored in the user station NVRAM to determine if values for the missing parameter(s) may be supplied by default values in a boot parameter table. Typically, the parameter table is also maintained on the NVRAM. The boot parameter table may include information per entry that indicates whether a value for the corresponding boot parameter may be supplied by the boot parameter table in NVRAM. In addition, the boot code typically allows a user to modify the boot parameter table to indicate which boot parameter values may be supplied by default if the dynamic boot process fails. If a boot server fails to return a value for a parameter that may not be specified by the default table in NVRAM, the boot code may take alternative action such as aborting the boot process or attempting to boot entirely from NVRAM. If the boot server fails to return a value for a parameter that may be supplied by default, the appropriate default value is retrieved from the boot parameter table of the user station and the boot sequence is allowed to complete successfully.